In an information handling system, the organization of files, programs, data, and any other desktop objects is frequently a problem for the user. Note that a desktop is a graphical user interface to system services. A desktop may be thought of as a container object (usually holding icons and menus) which allows users to run application programs and use a file system without directly using the command language of the operating system. Current desktops typically use container objects, such as folders, or other office-like container hierarchies, such as file cabinets, drawers, and folders. These organizations are typically file directory organizations that hold files, such as executables, data, or documentation. Linking mechanisms may allow a data file to be in more than one container simultaneously.
There are several prior art methods currently available to help users organize their desktops. Some application programs provide pull-down or pop-up menus, including submenus, to help users locate executable modules, data, or documentation. In addition, certain commands may be available, such as a "search" command or a "find" command, which will search a specified container or containers for a specific file or object.
However, there are several disadvantages to these prior art approaches. The user typically has to either guess or remember which container contains an object in order to start searching for the object. Determining a particular container and a level within the container hierarchy is referred to as determining the "scope" of the search. The user may have to execute a search command or a find command at several levels within a container to find the desired object. The user may also have to remember the exact name of an object in order to search for it. Further, many prior art search or find commands were originally designed to be used with files and directories, rather than with objects. Extending these commands for use with objects is often difficult. In most current systems, files are not true objects, in that they do not possess encapsulated states and behaviors. Instead, files are very specific operating system structures that can be accessed through directories, which are also specific operating system structures. Prior art search and find commands usually walk a file directory tree structure, which is very different from finding objects within a container object. Therefore, extending these prior art commands for use with objects often means putting objects in the same or new hierarchical containers or menus.
In addition to the problems described above, objects themselves are becoming more complex. Compound document architectures allow a user to create custom groupings of live objects. Note that a live object is an object that is a running application. For example, a compound document can contain a spreadsheet (data and executable), a text section (data and editor), and a video (data and player). All of these objects could be executing simultaneously. This is a new and useful organization tool for the desktop, but it also results in a need to organize these new, compound document objects.
Another type of desktop object is a global palette. A global palette is a container of generic objects which can be used to modify other objects. For example, a color object could be part of a global palette. This color object could be selected, dragged and dropped on to text, a bitmap, or a button. The color object can be accepted by the target object which then exhibits appropriate behavior, e.g. changes its color to that of the color object. Another global tool could be a magnifier which could cause a target object to change its size. While global palettes are useful tools, they increase the complexity of the desktop, making it even more critical that users be able to organize their desktops and keep track of particular objects.
Increasingly sophisticated desktops, with new types of objects, compound documents, and their applications, are making it harder, and more critical, for users to organize their desktops. Consequently, it would be desirable to have a system and method which allow users to organize their desktops. It would be desirable to allow users to organize and track any type of object, at any level (or levels) within a container hierarchy. Further, it would be desirable to allow users to customize the manner in which objects are organized and tracked, so that each user may organize and track objects in the manner which makes most sense to the individual user.